<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>打开控制台查看结果</div>
    <script>
        /* Object.create() 方法用于创建一个新对象，使用现有的对象来作为新创建对象的原型（prototype）。 */
        /* 在js中，实现原型模式利用的是Object.create()方法，使用现有对象来提供新创建对象的__proto__ */
        let prototype = {
            name : '东方',
            getName : function() {
                return this.name
            }
        }
        // 上面的对象prototype作为obj的隐式原型对象
        let obj = Object.create(prototype,{
            job : {
                value : 'IT'
            }
        })

        console.log(obj);
        // 隐式原型 === 显示原型，所以这里可以直接调用隐式原型的getName()方法
        console.log(obj.getName());  // 东方
        console.log(obj.job);  // IT
        console.log(obj.__proto__ === prototype);  // true




        console.log('============练习===========');
        (function(){
            let prototype = {
                name : '不败',
                getName : function (){
                    return this.name
                }
            }

            let obj = Object.create(prototype,{
                text : {value :'西方'}
            })

            console.log(obj.name);  // 不败
            console.log(obj.getName()); // 不败
            console.log(obj.text); // 西方
            console.log(obj.__proto__ === prototype);  // true  
        })()
    </script>
</body>
</html>